In the past, numerous organizations have employed software systems created and maintained over a period of time much longer than their anticipated lifespan. Typically, during the operating life of a software system, the needs of an organization change faster than the software is updated, causing the software to be antiquated and inefficient. As a result, users are generally forced to adapt their behavior to include coping mechanisms and specialized system management techniques to extend the useful life of the legacy application. Over time, these practices become integrated as standard operating procedures for interacting with the software system.
When the process of modernizing a legacy software system does occur, the adapted behavior of the users becomes critical with regard to making the new software system fully functional. Any attempt to modernize a legacy software system without taking into consideration the adapted behaviors formed by system users can lead to a system that does not meet the current needs of the organization.
Many of the past approaches to legacy software system modernization have lacked comprehensive analysis of system user interaction resulting in flawed software system modernization.